//package com.mo.tools.config;
//
//import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import springfox.documentation.builders.ApiInfoBuilder;
//import springfox.documentation.builders.ParameterBuilder;
//import springfox.documentation.builders.PathSelectors;
//import springfox.documentation.builders.RequestHandlerSelectors;
//import springfox.documentation.schema.ModelRef;
//import springfox.documentation.service.*;
//import springfox.documentation.spi.DocumentationType;
//import springfox.documentation.spring.web.plugins.Docket;
//import springfox.documentation.swagger2.annotations.EnableSwagger2;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import static com.google.common.collect.Lists.newArrayList;
//
//@Configuration
//@EnableSwagger2
//@EnableSwaggerBootstrapUI
//public class Swagger2Config {
//	private String version = "1.0";
//	@Bean
//	public Docket createRestApi(){
//		return new Docket(DocumentationType.SWAGGER_2)
//				.apiInfo(apiInfo())
//				.select()
//				//为当前包下controller生成API文档
////                .apis(RequestHandlerSelectors.basePackage("com.troila"))
//				//为有@Api注解的Controller生成API文档
//				.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
//				//为有@ApiOperation注解的方法生成API文档
//				.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
//				//为任何接口生成API文档
//				//.apis(RequestHandlerSelectors.any())
//				.paths(PathSelectors.any())
//				.build()
//				.securitySchemes(security())
//				.globalOperationParameters(getParameterList())
//				;
//		//添加登录认证
//                /*.securitySchemes(securitySchemes())
//                .securityContexts(securityContexts());*/
//	}
//
//	private List<Parameter> getParameterList() {
//		List<Parameter> parameters = new ArrayList<>();
//		parameters.add(new ParameterBuilder()
//				.name("userId")
//				.description("网关传递的用户ID")
//				.defaultValue("1342081643812765698")
//				.modelRef(new ModelRef("long"))
//				.parameterType("header")
//				.required(true)
//				.build());
//		parameters.add(new ParameterBuilder()
//				.name("tenantId")
//				.description("网关传递的租户ID")
//				.defaultValue("1331752623698647888")
//				.modelRef(new ModelRef("long"))
//				.parameterType("header")
//				.required(true)
//				.build());
//		parameters.add(new ParameterBuilder()
//				.name("applicationId")
//				.description("网关传递的应用ID")
//				.defaultValue("123")
//				.modelRef(new ModelRef("long"))
//				.parameterType("header")
//				.required(true)
//				.build());
//		return parameters;
//	}
//
//	private List<SecurityScheme> security() {
//		return newArrayList(
//				new ApiKey("Authorization", "Authorization", "header")
//		);
//	}
//
//	private ApiInfo apiInfo() {
//		Contact contact = new Contact("Huanhuan.Huang3","","Huanhuan.Huang3@geely.com");
//		return new ApiInfoBuilder()
//				.title("冲压排产系统API文档")
//				.description("冲压排产系统API文档")
//				.contact(contact)
//				.version(version)
//				.build();
//	}
//}
